Sanity test for ObjectName
authorFelix Krull <f_krull@gmx.de>
Sat, 18 May 2019 12:56:29 +0000 (14:56 +0200)
committerColin Walters <walters@verbum.org>
Fri, 6 May 2022 16:53:53 +0000 (12:53 -0400)
rust-bindings/rust/src/object_name.rs

index e64949236aea8b2a5a5202ff4a39692da9525c42..abff8c08c5ca37d93f7492a4da5ca8764c8bf245 100644 (file)
@@ -72,3 +72,38 @@ impl PartialEq for ObjectName {
         self.checksum == other.checksum && self.object_type == other.object_type
     }
 }
+
+#[cfg(test)]
+mod tests {
+    use super::*;
+
+    #[test]
+    fn should_stringify_object_name() {
+        let object_name = ObjectName::new("abcdef123456", ObjectType::DirTree);
+        let stringified = format!("{}", object_name);
+        assert_eq!(stringified, "abcdef123456.dirtree");
+    }
+
+    #[test]
+    fn same_values_should_be_equal() {
+        let a = ObjectName::new("abc123", ObjectType::File);
+        let b = ObjectName::new("abc123", ObjectType::File);
+        assert_eq!(a, b);
+    }
+
+    #[test]
+    fn different_values_should_not_be_equal() {
+        let a = ObjectName::new("abc123", ObjectType::Commit);
+        let b = ObjectName::new("abc123", ObjectType::File);
+        assert_ne!(a, b);
+    }
+
+    #[test]
+    fn should_create_object_name_from_variant() {
+        let object_name = ObjectName::new("123456", ObjectType::CommitMeta);
+        let from_variant = ObjectName::new_from_variant(object_name.variant.clone());
+        assert_eq!(object_name, from_variant);
+        assert_eq!("123456", from_variant.checksum());
+        assert_eq!(ObjectType::CommitMeta, from_variant.object_type());
+    }
+}